package com.itheima.day06;

import java.util.Scanner;

/*3. 键盘录入一个任意整数, 然后打印1到该数字之间所有的质数, 按照5个一行的形式输出.
例如: 用户录入200, 则打印1-200之间所有的质数.*/
public class Demo03 {
    public static void main(String[] args) {
        //打印一个随机整数
        System.out.println("键盘录入一个任意整数");
        //定义一个随机变量的对象
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        if (num == 1) {
            System.out.println("1");
            return;
        } else if (num < 1) {
            //打印输出
            System.out.println("输入不规范");
        }
        //1.定义变量count和flag, 分别表示: 满足条件的数字个数, 及一行几个数字(标记变量).
        int count = 0, flag = 5;
        //2. 通过for循环(外循环), 获取1-num之间所有的整数.
        A:
        for (int i = 2; i <= num; i++) {
            //3. 定义内循环, 获取从2开始, 至 i / 2的数字.
            for (int j = 2; j <= i / 2; j++) {
                //4. 依次判断i(例如: 10) 和 j(例如: 2, 3, 4, 5) 的余数, 但凡有一个能整除, 说明i不是质数.
                //核心点: 我们就 continue 外循环.
                if (i % j == 0) {
                    //走到这里, 说明i和j能整出, 得出结论: i不是质数.
                    continue A;
                }
            }
            //5. 整个内循环结束, 能走到这里的, 说明肯定是质数, 直接打印即可.
            System.out.print(i + (++count % flag == 0 ? "\r\n" : "\t"));
        }
    }
}

